using System;

namespace RomanJendrusz.Amazon.ETL.Infrastructure.Loging.Core
{
    public interface ILog
    {
        void Debug(string message);

        void Debug(object objectToBeLogged);
        
        void Debug(string message, object objectToBeLogged);

        void Debug(string message, Exception exceptionToBeLoggged);

        void Warn(string message);

        void Warn(object objectToBeLogged);

        void Warn(string message, object objectToBeLogged);

        void Warn(string message, Exception exceptionToBeLoggged);

        void Error(string message);

        void Error(object objectToBeLogged);

        void Error(string message, object objectToBeLogged);

        void Error(string message, Exception ex);

        Guid ErrorWithIdentifier(string message);

        Guid ErrorWithIdentifier(object objectToBeLogged);

        Guid ErrorWithIdentifier(string message, object objectToBeLogged);

        Guid ErrorWithIdentifier(string message, Exception exceptionToBeLoggged);
    }
}